(function($) {
	/**
	 * 系统通用方法
	 * 
	 * eg: $.SystemHelper.UrlRedirect()
	 *     $.SystemHelper.ReloadPage()
	 *     $.SystemHelper.ReloadParentPage()
	 *     $.SystemHelper.GetProjectName()
	 *     $.SystemHelper.IsNullOrEmpty()
	 *     $.SystemHelper.IsNotNullOrEmpty()
	 *     $.SystemHelper.TimePad()
	 *     
	 * @param $ (Jquery)
	 */
	$.SystemHelper = {
	   /**
	    * 页面跳转
	    * @param url
	    */
	   UrlRedirect: function(url) {
		   location.href = url;
		   return false;
	   },
	   /**
	    * 重新导入本页面
	    * @param url
	    */
	   ReloadPage: function(){
		   location.reload();
		   return false;
	   },
	   /**
	    * 重新导入父页面	    
	    */
	   ReloadParentPage: function() {
		   parent.location.reload();
	   },
	   /**
	    * 获取项目根路径
	    * eg: http://localhost:8083/project
	    * 
	    */
	   GetProjectName: function() {
		 //获取当前网址，如： http://localhost:8083/uimcardprj/share/meun.jsp
		 var curWwwPath=window.document.location.href;
	     //获取主机地址之后的目录，如： uimcardprj/share/meun.jsp
	     var pathName=window.document.location.pathname;
	     var pos=curWwwPath.indexOf(pathName);
	     //获取主机地址，如： http://localhost:8083
	     var localhostPaht=curWwwPath.substring(0,pos);
	     //获取带"/"的项目名，如：/uimcardprj
	     var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
	     return projectName;
	   },
	   /**
	    * 是否为空或者Null判断
	    * @param value
	    * @return true:为空, false:不为空
	    */
	   IsNullOrEmpty: function(value) {
		   var isRet = false;
		   if($.trim(value) == null || $.trim(value) === "") {
			   isRet = true;
		   }
		   return isRet;
	   },
	   /**
	    * 是否为空或者Null判断
	    * @param value
	    * @return true:不为空, false:为空
	    */
	   IsNotNullOrEmpty: function(value) {
		   var isRet = false;
		   if($.trim(value) != null && $.trim(value) != "") {
			   isRet = true;
		   }
		   return isRet;
	   },
	   /**
	    * 如果数字是一位，那么就在后面补零
	    * @param num 值
	    * @param n   补的位数
	    * eg:(400, 4) ==> 0400
	    */
	   TimePad: function(s) {
		   return s < 10 ? '0' + s: s;
	   }
	};
}(jQuery));

(function($) {
	/**
	 * 验证通用方法
	 * 
	 * eg: $.VerifyHelper.IsNullOrEmpty()
	 *     $.VerifyHelper.IsNotNullOrEmpty()
	 *     $.VerifyHelper.IsUndefined()
	 * @param $ (Jquery)
	 */
	$.VerifyHelper = {
	   /**
	    * 是否为空或者Null判断
	    * @param value
	    * @return true:为空, false:不为空
	    */
	   IsNullOrEmpty: function(value) {
		   var isRet = false;
		   if($.trim(value) == null || $.trim(value) === "") {
			   isRet = true;
		   }
		   return isRet;
	   },
	   /**
	    * 是否为空或者Null判断
	    * @param value
	    * @return true:不为空, false:为空
	    */
	   IsNotNullOrEmpty: function(value) {
		   var isRet = false;
		   if($.trim(value) != null && $.trim(value) != "") {
			   isRet = true;
		   }
		   return isRet;
	   },
	   /**
	    * 是否为空或者Null判断
	    * @param value
	    * @return true:不为空, false:为空
	    */
	   IsUndefined: function(value) {
		   var isRet = false;
		   if(typeof(value) === "undefined") {
			   isRet = true;
		   }
		   return isRet;
	   },
	};
}(jQuery));

(function($) {
	/**
	 * 消息框及模态框封装
	 * 
	 * eg: Lock             锁屏                         $.MessageHelper.Lock("系统加载中...") message可以自定义;
	 *     Unlock           解锁屏                        $.MessageHelper.Unlock();
	 *     TipDialog        短暂提示                       $.MessageHelper.TipDialog("数据提交成功", 2, "success");
	 *     AlertDialog      信息提示                       $.MessageHelper.AlertDialog("系统提示", "数据加载完成", "success", function(){});
	 *     ConfirmDialog    确认提示信息                    $.MessageHelper.ConfirmDialog("系统提示", "确认要删除吗?", function(flag){});
	 *     OpenNormalDialog 弹出正常对话框(带:确认按钮、取消按钮)   $.MessageHelper.OpenNormalDialog("/test.do", "dialogId", "修改用户信息", 200, 400, function(id){});
	 *     OpenHtmlDialog   弹出HTML的对话框(带:确认按钮、取消按钮) $.MessageHelper.OpenHtmlDialog("<font color="red">test</font>", "dialogId", "修改用户信息", 200, 400, function(id){});
	 *     OpenQueryDialog  弹出查询对话框(带：确认按钮、取消按钮)   $.MessageHelper.OpenQueryDialog("/test.do", "dialogId", "修改用户信息", 200, 400, function(id){});
	 *     OpenFullDialog   弹出全屏对话框(带:确认按钮、取消按钮)   $.MessageHelper.OpenFullDialog("/test.do", "dialogId", "修改用户信息", function(id){});
	 *     OpenNoBtnDialog  弹出无确定按钮对话框               $.MessageHelper.OpenNoBtnDialog("/test.do", "dialogId", "修改用户信息", 200, 400);
	 *
	 * @param $ (Jquery)
	 */
    $.MessageHelper = {
    	/**
    	 * 锁屏幕
    	 * @param message 锁屏消息内容
    	 */
        Lock: function(message) {
        	var defalutMessage = "系统正在处理中...";
        	$.dialog.tips((!!message ? message: defalutMessage), 200, 'loading.gif').lock();
        },
        /**
	     * Unlock 解锁屏
	     */
        Unlock: function() {
        	try {
        		$.dialog.list.Tips.close();
        	} catch (e) {
        	}
        },
        /**
	     * 关闭窗体页面
	     * @param id: 窗体ID
	     */
        CloseDialog: function(id) {
        	try {
        		$.dialog({id: id}).close();
        	} catch (e) {
        	}
        },
        /**
    	* 短暂提示
    	* @param message: 显示消息内容
    	* @param time:停留时间
    	* @param type:类型 "fail":失败/"success":成功/其他:警告
        **/
        TipDialog: function(message, time, type) {
        	var defalutTime = 2;
        	var tipType = (!!type ? type: "other");
        	var displayTime = (!!time ? time: defalutTime);
        	
        	var messageContent = "<div class='ui_alert_tip'>" + message + "</div>"
	        if (tipType == "fail") {
	            $.dialog.tips(messageContent, displayTime, "fail.png");
	        } else if (tipType == "success") {
	            $.dialog.tips(messageContent, displayTime, "succ.png");
	        } else {
	            $.dialog.tips(messageContent, displayTime, "i.png");
	        }
	    },
	    /**
    	* 提示信息
    	* @param message: 显示消息内容
    	* @param time:停留时间
    	* @param type:类型 "fail":失败/"success":成功/其他:警告
    	* @param callBack:回调函数 (可以不传入)
        **/
	    AlertDialog: function(title, message, type, callBack) {
	    	var messageContent = "<div class='ui_alert'>" + message + "</div>"
	    	var tipType = (!!type ? type: "other");
	    	
	        var icon = "i.png";
	        if (tipType == "fail") {
	            icon = "fail.png";
	        } else if (tipType == "success") {
	            icon = "succ.png";
	        }
	        
	        $.dialog({
	            id: "AlertDialog",
	            icon: icon,
	            content: messageContent,
	            title: ((!!title) ? title : "系统提示"),
	            ok: function () {
	            	if($.isFunction(callBack)) {
	            		callBack();
	            	}
	                return true;
	            }
	        });
	    },
	    /**
    	* 确认提示信息
    	* @param _title: 标题
    	* @param message:内容
    	* @param callBack回调函数(true:点击确定按钮,false:取消按钮)
        **/
	    ConfirmDialog: function(_title, message, callBack) {
	    	var messageContent = "<div class='confirm-dialog'>" + $.trim(message) + "</div>"
	        $.dialog({
	            id: "ConfirmDialog",
	            lock: true,
	            icon: "hits.png",
	            content: messageContent,
	            title: _title,
	            width:300,
	            height:100,
	            ok: function () {
	                callBack(true);
	                return true;
	            },
	            cancel: function () {
	                callBack(false);
	                return true;
	            }
	        });
	    },
	    /**
	     * 弹出正常对话框（带：确认按钮、取消按钮）
	     * @param url:    页面路径
	     * @param _id:    对话框ID
	     * @param _title: 对话框标题 
	     * @param _width: 宽度
	     * @param _height:高度
	     * @param callBack: 点击回确定按钮回调函数(回传的函数中的ID为对话框ID)
	     */
	    OpenNormalDialog: function(url, _id, _title, _width, _height, callBack) {
	        $.dialog({
	            id: _id,
	            width: _width,
	            height: _height,
	            max: false,
	            min: false,
	            lock: true,
	            title: _title,
	            resize: false,
	            extendDrag: true,
	            content: 'url:' +  url,
	            ok: function () {
	                callBack(_id);
	                return true;
	            },
	            cancel: true
	        });
	    },
	    /**
	     * 弹出HTML内容的对话框（带：确认按钮、取消按钮）
	     * @param _html:    页面路径
	     * @param _id:    对话框ID
	     * @param _title: 对话框标题 
	     * @param _width: 宽度
	     * @param _height:高度
	     * @param callBack: 点击回确定按钮回调函数(回传的函数中的ID为对话框ID)
	     */
	    OpenHtmlDialog: function(_html, _id, _title, _width, _height, callBack) {
	        $.dialog({
	            id: _id,
	            width: _width,
	            height: _height,
	            max: false,
	            min: false,
	            lock: true,
	            title: _title,
	            resize: false,
	            extendDrag: true,
	            content: _html,
	            ok: function () {
	                callBack(_id);
	                return true;
	            },
	            cancel: true
	        });
	    },
	    /**
	     * 弹出查询对话框（带：确认按钮、取消按钮）
	     * @param _url:   页面路径
	     * @param _id:    对话框ID
	     * @param _title: 对话框标题 
	     * @param _width: 宽度
	     * @param _height:高度
	     * @param callBack: 点击回确定按钮回调函数(回传的函数中的ID为对话框ID)
	     */
	    OpenQueryDialog: function(_url, _id, _title, _width, _height, callBack) {
	    	$.dialog({
	            id: _id,
	            width: _width,
	            height: _height,
	            max: false,
	            mix: false,
	            lock: true,
	            title: _title,
	            content: "url:" + _url,
	            button: [
	                {
	                    name: "查 询",
	                    callback: function () {
	                        _callBack(_id);
	                        return true;
	                    }
	                },
	                {
	                    name: "取 消"
	                }
	            ]
	        });
	    },
	    /**
	     * 弹出全屏对话框（带：确认按钮、取消按钮）
	     * @param url:    页面路径
	     * @param _id:    对话框ID
	     * @param _title: 对话框标题
	     * @param callBack: 点击回确定按钮回调函数(回传的函数中的ID为对话框ID)
	     */
	    OpenFullDialog: function(url, _id, _title, callBack) {
	    	$.dialog({
	            id: _id,
	            lock: true,
	            title: _title,
	            max: false,
	            min: false,
	            width: $(window).width() - 40,
	            height: $('body').height() - 100,
	            content: 'url:' + url,
	            ok: function () {
	                callBack(_id);
	                return true;
	            },
	            cancel: true
	        })
	    },
	    /**
	     * 弹出无确定按钮对话框（带：确认按钮、取消按钮）
	     * @param url:    页面路径
	     * @param _id:    对话框ID
	     * @param _title: 对话框标题
	     * @param _width: 宽度
	     * @param _height:高度
	     */
	    OpenNoBtnDialog: function(url, _id, _title, _width, _height) {
//	        $.dialog({
//	            id: _id,
//	            width: _width,
//	            height: _height,
//	            lock: true,
//	            title: _title,
//	            content: 'url:' + url
//	        });
	        
	        layer.open({
	        	 id: _id,
	        	 type: 2,
	        	 area: [_width+'px', _height+'px'],
	        	 fix: false, //不固定
	        	 maxmin: true,
	        	 content: url,
	        	 title: _title
	  		});
	        
	    },
    };
}(jQuery));

(function($) {
	/**
	 * Ajax 请求封装
	 * 
	 * eg: json 返回方式      $.AjaxRequestHelper.AjaxJsonRequest("/test.do", {}, function(data){ });
	 *     json 返回方式带屏幕锁 $.AjaxRequestHelper.AjaxJsonLockRequest("/test.do", {}, function(data){ }, false);
	 *     text 返回方式      $.AjaxRequestHelper。AjaxTextRequest("/test.do", {}, function(data){ });
	 * @param $ (Jquery)
	 */
    $.AjaxRequestHelper = {
		/**
	     * Ajax 请求返回Json格式
	     * @param url
	     * @param postParamData {}
	     * @param callBack 回调函数
	     */
        AjaxJsonRequest: function(url, paramData, callBack) {
        	try {
     		   $.ajax({
     		       url: url,
     		       type: "post",
     		       data: paramData,
     		       dataType: "json",
     		       async: false ,
     		       success: function (data) {
     		    	  callBack(data);
     		       },
     		       error: function () {
     		    	  $.messager.alert("系统提示", "ajax 服务器请求失败！");
     		       }
     		   });
     		} catch (e) {
     			$.messager.alert("系统提示", "ajax 服务器请求失败！");
     		}
        },
        /**
	     * Ajax 请求返回Json格式,带屏幕锁
	     * @param url
	     * @param postParamData {}
	     * @param callBack 回调函数
	     * @param isUnLock 是否解锁(如果提交完成后,页面跳转,将不进行解锁) true:解锁,false:不解锁
	     */
        AjaxJsonLockRequest: function(url, paramData, callBack, isUnLock) {
        	$.MessageHelper.Lock();
        	try {
     		   $.ajax({
     		       url: url,
     		       type: "post",
     		       data: paramData,
     		       dataType: "json",
     		       success: function (data) {
     		    	  if(!$.VerifyHelper.IsUndefined(isUnLock) && isUnLock) {
     		    		$.MessageHelper.Unlock(); 
     		    	  }
     		    	  callBack(data);
     		       },
     		       error: function () {
     		    	  $.MessageHelper.Unlock();
     	     		  $.MessageHelper.TipDialog("系统提示", "ajax 服务器请求失败！", "fail");
     		       }
     		   });
     		} catch (e) {
     			$.MessageHelper.Unlock();
     			$.MessageHelper.TipDialog("系统提示", "ajax 服务器请求失败！", "fail");
     		}
        },
        /**
	     * Ajax 请求返回文本格式
	     * @param url
	     * @param postParamData {}
	     * @param callBack
	     */
        AjaxTextRequest: function(url, postParamData, callBack) {
        	try {
      		   $.ajax({
      		       url: url,
      		       type: "post",
      		       data: postParamData,
      		       async: false,
      		       success: function (data) {
      		    	  callBack(data);
      		       },
      		       error: function () {
      		    	 $.messager.alert("系统提示", "ajax 服务器请求失败！");
      		       }
      		   });
      		} catch (e) {
      			$.messager.alert("系统提示", "ajax 服务器请求失败！");
      		}
        }
    };
}(jQuery));


(function($) {
	/**
	 * Swal Ajax 请求封装
	 * 
	 * eg: json 返回方式 $.SwalAjaxRequestHelper.AjaxSwalRequest("/test.do", {}, function(data){ });
	 *     text 返回方式 $.SwalAjaxRequestHelper.AjaxSwalRequest("/test.do", {}, function(data){ });
	 * @param $ (Jquery)
	 */
    $.SwalAjaxRequestHelper = {
		/**
	     * Ajax 请求返回Json格式
	     * @param url
	     * @param postParamData {}
	     * @param callBack
	     */
        AjaxSwalRequest: function(title, url, postParamData, callBack) {
     		swal({
     			title : title,
     			type : "warning",
     			showCancelButton : true,
     			confirmButtonColor : "#DD6B55",
     			confirmButtonText : "确定",
     			cancelButtonText : "取消",
     			closeOnConfirm : false,
     			closeOnCancel : false
     		},
     		function(a) {
     			if(a){
     				try {
	     				$.ajax({
	     	                cache: true,
	     	                type: "POST",
	     	                url: url,
	     	                data: postParamData,
	     	                dataType: "json",
	     	                async: false,
	     	                error: function(data) {
	     	                	swal("OMG", data.message, "error");
	     	                },
	     	                success: function(data) {
	     	                	if($.isFunction(callBack)){
	          		    		   callBack(data);
	          		    	    }else{
	          		    	    	if(data.flag != "success"){
	         	                		swal("操作失败!", data.message, "error");
	         	                	}else{
	         	                		swal("操作成功!", data.message, "success");
	         	                	}
	          		    	    }
	     	                }
	     	            });
     				} catch (e) {
     					swal("OMG", "服务请求失败！", "error");
     	     		}
     			}else{
     				swal("取消操作!", "已经取消了操作", "info");
     			}
     		})
        },
        
        AjaxRequest: function(url, postParamData, callBack) {
			try {
 				$.ajax({
 	                cache: true,
 	                type: "POST",
 	                url: url,
 	                data: postParamData,
 	                dataType: "json",
 	                async: false,
 	                error: function(data) {
 	                	swal("OMG", data.message, "error");
 	                },
 	                success: function(data) {
 	                	if($.isFunction(callBack)){
      		    		   callBack(data);
      		    	    }else{
      		    	    	if(data.flag != "success"){
     	                		swal("操作失败!", data.message, "error");
     	                	}else{
     	                		swal("操作成功!", data.message, "success");
     	                	}
      		    	    }
 	                }
 	            });
			} catch (e) {
				swal("OMG", "服务请求失败！", "error");
     		}
        }
    
    
    
    
    
    
    };
}(jQuery));